Collecting and representing home attributes

ABSTRACT

A facility for representing home attribute values for a plurality of homes and a plurality of home attributes is described. The facility incorporates a data structure comprising, for each of the plurality of homes, for each of the plurality of attribute value sources, the capacity to store values for any of the plurality of home attributes obtained from the attribute value source.

TECHNICAL FIELD

The described technology is directed to the fields of information gathering and representation.

BACKGROUND

It can be useful to have information about the attributes of one or more properties, such as one or more residential properties. Typical examples of such “home facts” include lot size, number of bedrooms, number of bathrooms, total floor space, view type, and roof type. By obtaining home facts for a home of interest, a person can arrive at a better sense of the home and its level of suitability to particular buyers.

In many cases, information about at least some home facts of a particular home is compiled by a governmental agency, such as the assessor's office for the county in which the home is located. Such information may be available directly from the governmental agency, and/or an intermediary information provider.

Unfortunately, information about home facts obtained in this way is frequently incomplete, in that it may cover only a few of a longer list of home facts that are of interest. Additionally, information about home facts obtained in this way is often out of date, or otherwise inaccurate. These deficiencies, typical of home facts information derived from common sources, tend to limit the value of presently-available home facts information.

Accordingly, an approach capable of acquiring, storing, and using a more complete and accurate set of home facts for a particular house than is available from government sources would have significant utility.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a high-level data flow diagram showing data flow within a typical arrangement of components used to provide the facility.

FIG. 2 is a block diagram showing some of the components typically incorporated in at least some of the computer systems and other devices on which the facility executes.

FIG. 3 is a display diagram showing a sample display typically presented by the facility before the owner for a particular home has inputted home facts—i.e., attribute values—for a particular home.

FIGS. 4A-4B contain a flow diagram showing steps typically performed by the facility in order to determine whether to identify a particular user as the owner of a particular home, and subsequently permit that user to provide attribute values for that home that are stored in the home facts database.

FIGS. 5 and 6 are display diagrams showing a sample display presented by the facility to ask a question of the user.

FIG. 7 is a display diagram showing a typical display presented by the facility when the user has been identified as the owner of the home.

FIG. 8 is a display diagram showing a typical display presented by the facility in order to obtain credit card information from the user.

FIG. 9 is a display diagram showing a display typically presented by the facility in connection with the manual resolution process.

FIG. 10 is a display diagram showing a typical display presented by the facility in order to determine whether the user purchased the home from the owner presently identified for the home.

FIG. 11 is a display diagram showing a sample display presented by the facility that permits a user who is currently identified as the owner of the home to relinquish confirmed ownership of the home.

FIG. 12 is a display diagram showing an initial version of a display usable by a user identified as the owner of the home to provide attribute values for the home.

FIG. 13 is a display diagram showing the second version of the display shown in FIG. 12.

FIG. 14 is a display diagram showing a sample display presented by the facility in response to receiving home facts from the user identified as the owner of the home.

FIG. 15 is a display diagram showing a sample display presented by the facility containing a valuation of the home generated at least in part based upon the attribute values provided by the owner.

FIG. 16 is a table diagram showing sample contents of the property attribute value table.

FIG. 17 is a table diagram showing sample contents of the property table in the first state of the home facts database.

FIG. 18 is a table diagram showing sample contents of the property attribute type table in the first state of the home facts database.

FIG. 19 is a table diagram showing sample contents of the data source type table in the first state of the home facts database.

FIG. 20 is a table diagram showing sample contents of the attribute value enum table in the first state of the home facts database.

FIG. 21 is a table diagram showing sample contents of the attribute usage table in a first state of the home facts database.

FIG. 22 is a table diagram showing sample contents of the property attribute type table in the second state of the home facts database.

FIG. 23 is a table diagram showing several contents of the property attribute value table in the second state of the home facts database.

FIG. 24 is a table diagram showing sample contents of the data source type table in the third state of the home facts database.

FIG. 25 is a table diagram showing sample contents of the property attribute value table 2500 in the third state of the home facts database.

DETAILED DESCRIPTION

A software facility for managing information about home facts (“the facility”) is described. The facility takes advantage of an extensible storage architecture for home facts information, which can be easily expanded to accommodate new home facts or updated ranges of values for existing home facts. In some embodiments, the storage architecture simultaneously stores home facts information from multiple sources about the same home, such as home facts information from a government agency, home facts obtained from a user identified as the owner of the home, and home facts obtained from a user identified as having some other role with respect to the home, such as a former owner, an appraiser charged with appraising the house, or a listing agent who is undertaking to sell the house.

In some embodiments, the facility provides a user interface that the owner of a home or another user knowledgeable about the home can use to correct information provided for the home by another source; confirm information provided for the home by another source; or provide information about the home not available from another source. The home facts information provided using the user interface can include various types of data, such as numerical values, text, items selected from enumerated lists, photos or videos of the home, documents relating to the home such as appraisals or inspection reports, etc.

In some embodiments, the facility displays together home facts information about a particular home from multiple sources, or otherwise uses home facts information about a particular home from multiple sources. In some embodiments, the facility employs logic for combining home facts information from multiple sources to obtain composite home facts information for a home whose completeness and/or accuracy may exceed those of home facts information from a government agency. As useful home facts information for a home becomes available from additional sources, the quality of the composite home facts obtained for the home using the combination logic may continue to increase.

In some embodiments, the facility employs one or more approaches to identifying the current owner of a home, so as to limit the ability of non-owners to inaccurately identify themselves as owners and submit unreliable home facts.

FIG. 1 is a high-level data flow diagram showing data flow within a typical arrangement of components used to provide the facility. FIG. 1 shows a home facts database 101 in which the facility stores home facts information obtained from multiple sources, which is hosted by one or more database servers 100. As examples, the home facts database contains home facts information 112 exploited from public information sources such as title recording offices, property tax assessment or collection agencies, or intermediaries providing access to such data, via the Internet 130 and a data importation server 140. Additionally, the home facts database contains home facts 122 inputted by users identified as owners of the subject homes via the Internet and a web server 150. All of the contents of the home facts database are potentially available for inclusion in web pages 162 generated by the facility containing information about particular houses or groups of houses and served to visitors 161.

While various embodiments are described in terms of the environment described above, those skilled in the art will appreciate that the facility may be implemented in a variety of other environments including a single, monolithic computer system, as well as various other combinations of computer systems or similar devices connected in various ways. In various embodiments, a variety of computing systems or other different client devices may be used in place of the web client computer systems, such as mobile phones, personal digital assistants, televisions, cameras, etc.

FIG. 2 is a block diagram showing some of the components typically incorporated in at least some of the computer systems and other devices on which the facility executes. These computer systems and devices 200 may include one or more central processing units (“CPUs”) 201 for executing computer programs; a computer memory 202 for storing programs and data while they are being used; a persistent storage device 203, such as a hard drive for persistently storing programs and data; a computer-readable media drive 204, such as a CD-ROM drive, for reading programs and data stored on a computer-readable medium; and a network connection 205 for connecting the computer system to other computer systems, such as via the Internet. While computer systems configured as described above are typically used to support the operation of the facility, those skilled in the art will appreciate that the facility may be implemented using devices of various types and configurations, and having various components.

In some embodiments, identified owners and/or visitors may use a variety of devices in order to input home facts or view home facts provided form the home facts database. These users may use desktop computers, laptop computers, wireless email devices, wireless phones, set top boxes, automobile computers, or other devices having a web browser to interact with web pages with respect to such information. Additionally, these users may use these or other types of devices to communicate directly or indirectly with the server in a variety of other modes, including via email, text message, voice message, live voice call, etc.

FIG. 3 is a display diagram showing a sample display typically presented by the facility before the owner for a particular home has inputted home facts—i.e., attribute values—for a particular home. The display 300 indicates attribute values 310 obtained from a source other than the owner, such as attribute values obtained from government sources. The display further shows a valuation 330 determined in accordance with these attribute values, and a control 340 that the user may activate to display all such attribute values. The display further includes an indication that attribute values have not yet been received for this home by the home's owner, and a control 349 that the user may activate in order to provide attribute values for the home.

While FIG. 3 in each of the display diagrams discussed below show particular display contents and organization, generally formatted as a web page or a portion of a web page, those skilled in the art will appreciate that actual displays used by the facility to present information may differ from those shown, in that they, for example, may contain different information, information that is portrayed differently, a different organization, a different format, etc.

In some embodiments, in response to the user's activation of control 349, the facility performs a process to determine whether to identify the user as the owner of the current home. FIGS. 4A-4B contain a flow diagram showing steps typically performed by the facility in order to determine whether to identify a particular user as the owner of a particular home, and subsequently permit that user to provide attribute values for that home that are stored in the home facts database. In step 401, if an owner is presently identified for this home, then the facility continues in step 402, else the facility continues in step 404. In step 402, if the identified owner is the current user, then the facility continues in step 403, else the facility continues through connector A at step 421, shown in FIG. 4B. In step 403, the facility permits the current user to provide and/or edit home facts as is discussed further below in connection with FIGS. 12-15. After step 403, these steps conclude.

In step 404, if each of the following three conditions is true, then the facility continues in step 405, else the facility continues in step 410: the user is identified as the owner of fewer than X homes, such as one home; the facility possesses enough information to ask a question whose answer would be known to the owner of the home; and the IP address of the user's computer is not presently blacklisted. In step 405, the facility asks a question of the user whose answer would be known to the owner of the home.

FIGS. 5 and 6 are display diagrams showing a sample display presented by the facility to ask a question of the user. Display 500 includes a control 510 usable by the user to answer the posed question, here the name of the home's legal owner. This control is shown expanded in FIG. 6, with a list of names 611-616 that the user may select in response to the question, as well as alternative 620 indicating that the user's name is not among those displayed. In some embodiments, the name of the home's legal owner is randomly located within the order of names shown in the control, and/or randomly omitted from this list. In various embodiments, other types of questions whose answer is expected to be known by the home's owner are used in step 405. After the user operates the control 510 to select the correct answer to the question, the user selects a checkbox 530 confirming that he or she is the owner of the home, and activates a continue control 540.

Returning to FIG. 4A, in step 406, if the answer provided by the user to the question posed in step 405 is correct, then the facility continues in step 407, else the facility continues in step 408. In step 407, the facility identifies the current user as the owner of the home, and permits this user to enter home facts as described below. After step 407, these steps conclude.

FIG. 7 is a display diagram showing a typical display presented by the facility when the user has been identified as the owner of the home. The display 700 includes an indication 701 that the user has been identified as the owner of the home, and a control 702 that the user may activate in order to edit home details for the home. In some embodiments, rather than presenting the display shown in FIG. 7, after step 407, the facility immediately presents a display that enables the user to edit the home facts for the home, such as the display shown in FIG. 12.

Returning to FIG. 4A, in step 408, if the user has provided more than a number Y of incorrect answers to the questions posed in step 405 during a particular foregoing period of time, such as the current web browsing session, then the facility continues in step 409, else the facility continues in step 405 to ask another question whose answer would be known to the owner of the home. In step 409, the facility blacklists the IP address of the user's computer for Z days, such as seven days, preventing this computer from being used to claim a home by answering questions posed in step 405 for this period of time. After step 409, the facility continues in step 411.

In step 410, if this user has provided credit card information within the last H hours—such as the last one hour—that has subsequently been successfully verified, then the facility continues in step 407 to identify the user as the owner of the home, else the facility continues in step 411. In step 411, the facility obtains credit card information from the user.

FIG. 8 is a display diagram showing a typical display presented by the facility in order to obtain credit card information from the user. The display 800 contains controls 801-810 that may be used by the user to provide credit card information. The display further includes a checkbox 830 for the user to select in order to confirm that the user is the owner of the home. The display further includes a continued control 840 that the user may activate in order to submit the entered credit card information.

Returning to FIG. 4A, in step 412, if the user's account is blocked due to earlier credit card errors, then the facility continues in step 413, else the facility continues in step 414. In step 413, the user's efforts to be identified as the owner of the home fail, and these steps conclude without identifying the user as the owner of the home. In step 414, the credit card information obtained from the user in step 411 is verified, such as with the issuer of the credit card, a charge-clearing bureau associated with the credit card, or similar entity; if the credit card information is approved, then the facility continues in step 415, else the facility continues in step 416. In step 415, the facility identifies the user as the owner of the home and permits the user to enter home facts. After step 415, these steps conclude.

In step 416, if the user gives up on attempting to be identified as the owner of the home, then the facility continues in step 417, else the facility continues in step 418. In step 417, the user's efforts to be identified as the owner of the home fail, and these steps conclude without identifying the user as the owner of the home.

In step 418, if the user has tried more than T times, such as two times, to be identified as the owner of the home based on credit card information, then the facility continues in step 419, else the facility continues in step 411 to again obtain credit card information from the user.

In step 419, as the user has not given up, the facility initiates a manual resolution process for determining whether the user is the owner of the home. As an example, the manual resolution process may require the user to provide documentary evidence that he or she is the owner of the home to the operator of the facility, such as via postal mail, email, or the uploading of an image of such documentary evidence. Such documentary evidence may include copies or images of such documents as: a deed, a title, a mortgage statement, a property tax assessment, a property tax bill, a recent utility bill, or another document identifying both the home and the user and reflecting ownership of the home by the user.

FIG. 9 is a display diagram showing a display typically presented by the facility in connection with the manual resolution process. It contains information 900 about the manual resolution process, including a sample list of acceptable documents.

Returning to FIG. 4A, in step 420, the facility identifies the ownership of the home in accordance with the result of the manual resolution process. In some embodiments, this involves identifying the user as the owner of the home if the user successfully completes the manual resolution process, and not identifying any owner for the home if the user does not successfully complete the manual resolution process. After step 420, these steps conclude.

Turning to FIG. 4B, in step 421, if the user purchased the home from the person currently identified as the owner of the home, then the facility continues in step 422, else the facility continues in step 424.

FIG. 10 is a display diagram showing a typical display presented by the facility in order to determine whether the user purchased the home from the owner presently identified for the home. The display 1000 includes a control 1001 that the user may operate in order to indicate that they recently purchased the home, and begin an appropriate process for confirming their ownership of the home. In some embodiments, the display also includes a control 1002 that the user may activate to indicate that the user currently identified as the owner of the home maliciously and erroneously requested to be identified as the owner of the home, and a control 1003 that the user may activate in order to indicate that the user co-owns the home with the person presently identified as the owner of the home.

Returning to FIG. 4B, in step 422, the facility verifies the user with credit card information in accordance with steps 411, 412, 414, 416, and 418. In step 423, if the verification of step 422 succeeded, the facility identifies the user as the owner of the home and permits the user to enter home facts. After step 423, these steps conclude.

In step 424, the facility verifies the user with both a question—in accordance with steps 405, 406, and 408—and with credit card information—in accordance with steps 411, 412, 414, 416, and 418. In step 425, if both forms of verification performed in step 424 succeeded, then the facility continues in step 427, else the facility continues in step 426. In step 426, the user's efforts to be identified as the owner of the home fail, and these steps conclude without identifying the user as the owner of the home.

In step 427, the facility identifies the user as the owner of the home and permits the user to enter home facts for the home. In step 428, the facility notifies the user formerly identified as the owner of the home. In step 429, if the user formerly identified as the owner of the home dissents from the identification of the current user as the owner of the home, then the facility continues in step 430, else these steps conclude.

In step 430, the facility initiates a manual resolution process to determine which of the two users should be identified as the owner of the home. In some embodiments, this process is similar to the one described above in connection with step 419, selecting the user that is able to successfully provide documentary evidence that he or she currently owns the home. In step 431, the facility identifies the owner of the home in accordance with a manual resolution performed in step 430. After step 431, these steps conclude.

Those skilled in the art will appreciate that the steps shown in FIGS. 4A-4B may be altered in a variety of ways. For example, the order of the steps may be rearranged; substeps may be performed in parallel; shown steps may be omitted, or other steps may be included; etc.

In some embodiments (not shown), the facility permits the user to initiate manual resolution in some or all of the circumstances in which FIGS. 4A-4B show the user's attempt to be identified as the owner of the home failing, such as in step 413 and/or step 426.

FIG. 11 is a display diagram showing a sample display presented by the facility that permits a user who is currently identified as the owner of the home to relinquish confirmed ownership of the home. Display 1100 includes a control 1101 that the user may operate in order to specify a reason for relinquishing ownership. The display further includes a submit control 1102 that the user may activate in order to relinquish ownership of the home.

FIGS. 12-15 show a sample user interface typically presented by the facility that enables a user identified as the owner of a home to edit or update home facts associated with the home, i.e., provide attribute values for the home. FIG. 12 is a display diagram showing an initial version of a display usable by a user identified as the owner of the home to provide attribute values for the home. The initial version 1200 of the display contains controls 1201-1222, each corresponding to a different home attribute and showing a value for that attribute currently in the possession of the facility, such as a value obtained from a source other than the owner, such as a value obtained from a government source. For example, control 1202 indicates that the facility currently possesses a value of 5 for the number of bedrooms attribute.

FIG. 13 is a display diagram showing the second version of the display shown in FIG. 12. This version of the display 1300 shows the display after the user has used some of the controls to provide new values of the associated attributes. In particular, the user has used controls 1302, 1303, 1304, 1305, 1314, and 1320 to provide new values of the associated attributes. As one particular example, a user has used control 1302 to provide the value 6 for a number of bedrooms' attribute, for which the facility had earlier obtained the value of 5 from another source. These attribute values provided by the owner are consistent with a small addition that added 530 square feet and two rooms, including one bedroom and an expansion of a half bathroom, as well as central air conditioning. They also reflect that the home has a tile roof, a detail not present among the earlier-obtained attribute values. After using the controls to provide attribute values that differ from the ones initially shown, the user selects a checkbox 1330 again confirming that he or she is the owner of the home and promising that the home facts entered by the user are accurate, then activates a submit control 1341 to provide these attribute values. The user can instead activate a cancel control 1341 in order not to provide any attribute values for the home.

FIG. 14 is a display diagram showing a sample display presented by the facility in response to receiving home facts from the user identified as the owner of the home. The display 1400 is similar to display 300 shown in FIG. 4, but contains the attribute values 1450 provided by the owner, including attribute values 1451, 1452, and 1454, which differ from the attribute values provided for the same attributes by another source of attribute values, and are shown in bold to highlight this difference. Again, the user can select a control 1440 to display, for all of the home's attributes, the values provided by the owner and the other attribute value source. The display also contains a control 1460 that the user may activate in order to generate a valuation for the home based upon the attribute values provided by the owner, or some combination of the attribute values provided by the owner and attribute values obtained from one or more other sources.

FIG. 15 is a display diagram showing a sample display presented by the facility containing a valuation of the home generated at least in part based upon the attribute values provided by the owner. The display 1500 includes such a valuation 1560. In some embodiments, the facility generates this valuation in accordance with one or more of U.S. patent application Ser. No. 11/347,000, filed on Feb. 3, 2006; U.S. patent application Ser. No. 11/347,024, filed on Feb. 3, 2006; and/or U.S. patent application Ser. No. ______ (patent counsel's matter no. 56920-8015-US00), filed concurrently herewith, each of which is hereby incorporated by reference in its entirety.

FIGS. 16-25 show sample contents of the home facts database maintained and used by the facility. In some embodiments, the home facts database stores home attribute values and associated information in six tables: a property attribute value table, a property table, a property attribute type table, a data source type table, an attribute value enum table, and an attribute usage table. FIGS. 16-21 show an initial state of the home facts database, while FIGS. 22-23 and 24-25 each correspond to subsequent states of the database.

FIG. 16 is a table diagram showing sample contents of the property attribute value table. The property attribute value table 1600 contains a row for each value for a particular house (i.e., property) for a particular attribute (i.e., home fact) obtained from a particular data source, such as rows 1611-1624 shown in the drawing. Each row is divided into the following columns: a PropertyID column 1601 containing a unique identifier for the home; a PropertyAttributeTypeID column 1602 containing a unique identifier identifying the particular attribute whose value is contained by the row; a DataSourceTypeID column 1603 containing a unique identifier for the source of the attribute value contained by the row; a SeqNbr column 1604 indicating the number of values for this home and attribute previously obtained from this data source; an AttributeValueEnumID column 1605 containing an identifier for the attribute value if the attribute value is of an enumerated type; an AttributeValue column 1606 containing a value for the attribute if the attribute is for a non-enumerated type; an AttributeUsageID column 1607 containing an identifier for a manner of interpreting the attribute value indicated by the row; and a UseRank column 1608 indicating where in a list of attribute values for the home the attribute value indicated by the current row should be displayed. Additional information about the home identified by the PropertyID column of a particular row can be found in the property table, linked by the PropertyID. Additional information about the identity of the attribute identified by the PropertyAttributeTypeID in a particular row may be found in the property attribute type table, linked by PropertyAttributeTypeID. Additional information about the DataSourceTypeID contained in a particular row may be found in the data source type table, linked by DataSourceTypeID. Additional information about the AttributeValueEnumID contained in a particular row may be found in the attribute value enum table, linked by the AttributeValueEnumID. Additional information about the AttributeUsageID contained by a particular row may be found in the attribute usage table, linked by AttributeUsageID.

While FIG. 16 and each of the table diagrams discussed below show a table whose contents and organization are designed to make them more comprehensible by a human reader, those skilled in the art will appreciate that actual data structures used by the facility to store this information may differ from the table shown, in that they, for example, may be organized in a different manner; may contain more or less information than shown; may be compressed and/or encrypted; etc.

FIG. 17 is a table diagram showing sample contents of the property table in the first state of the home facts database. The property table 1700 contains a row for each home for which attribute values are contained by the property attribute value table, such as rows 1711 and 1712. Each row is divided into the following columns: a PropertyID column 1701 containing a property ID uniquely identifying the home; an address column 1702 containing an address for the home; a county column 1703 showing the county in which the home is located; a city column 1704 showing a city in which the home is located; a state column 1705 showing a state in which the home is located; and a zip column 1706 showing a zip code for the home. In various embodiments, the property table may contain different or additional information about each home, or additional information about each home may be contained in another table. For example, row 1711 of the property table indicates that the home having property ID 11111111, for which attribute values are specified by rows 1611-1623 of the property attribute value table has address 1234 Holly Avenue, is located in King County, in the city of Seattle, in the State of Washington, and has the zip code 98122. When the facility receives an attribute value for a home not corresponding to a row of the property table, the facility generates a new property ID identifying the home, and adds a row to the property table containing the generated property ID and other information and other information identifying the home.

FIG. 18 is a table diagram showing sample contents of the property attribute type table in the first state of the home facts database. The property attribute type table 1800 contains a row for each different attribute for which the property attribute value table can store a value, such as rows 1811-1818. An attribute is also referred to herein as a attribute type. Each row is divided into the following columns: a PropertyAttributeTypeID 1801 containing a PropertyAttributeTypeID uniquely identifying the attribute; and a PropetyAttributeTypeDesc 1802 containing a description of the attribute. For example, row 1811 indicates that the attribute having PropertyAttributeTypeID 111, for which values are stored in rows 1611, 1612, and 1624 of the property attribute value table, has the description “number of bedrooms.” In order to adapt the home facts database to store values of a new attribute, this attribute and a PropertyAttributeTypeID for it simply need to be added to a new row of the property attribute type table.

FIG. 19 is a table diagram showing sample contents of the data source type table in the first state of the home facts database. The data source type table 1900 has a row for each source or type of source of attribute values, such as rows 1911-1912. Each row is divided into the following columns: a DataSourceTypeID 1901 containing an identifier for the data source or data source type; and a DataSourceTypeDesc 1902 containing a description for this data source or data source type. For example, row 1911 indicates that the DataSourceTypeID 1, which is the data source from which the attribute values contained in rows 1611, 1613, 1615, 1616, 1618, 1620, 1622, and 1624 was obtained, is one or more local governments. Row 1911 indicates that the data source corresponding to DataSourceTypeID 2, from which the attribute values contained in rows 1612, 1614, 1617, 1619, 1621, and 1623 of the property attribute value table is the current owner of the corresponding home. In order to add a new data source or data source type from which attribute values may be obtained and stored in the property attribute value table, it is only necessary to add a new row to data source type table identifying the source or source table and assigning a DataSourceTypeID to it.

FIG. 20 is a table diagram showing sample contents of the attribute value enum table in the first state of the home facts database. The attribute value enum table 2000 contains rows each corresponding to an enumerated value for an attribute whose values are enumerated, such as rows 2011-2017. Each row is divided into the following columns: an AttributeValueEnumID 2001 containing an AttributeValueEnumID identifying the enumerated value; a PropertyAttributeTypeID column 2002 containing a PropertyAttributeTypeID of the attribute for which the enumerated value is available; and an AttributeValueEnumDesc column 2003 containing a description of the enumerated value. For example, rows 2011-2013 each define one of three different enumerated values for the attribute having PropertyAttributeTypeID 118, i.e., the roof type attribute defined by row 1818 of the Property Attribute Type table shown in FIG. 18. Row 2011 indicates that, for this attribute, the enumerated value composite is assigned AttributeValueEnumID 1. Rows 2012 and 2013 respectively indicate that the enumerated value cedar shake is assigned AttributeValueEnumID 2, while the enumerated value clay tile is assigned AttributeValueEnumID 3. Rows 2014-2017 similarly define enumerated values for the attribute having PropertyAttributeTypeID 116, i.e., the cooling attribute defined in row 1816 of the property attribute type table. Where enumerated values of a new attribute are to be stored in the property attribute value table, each of those enumerated values should be defined by adding a new row to the attribute value enum table.

FIG. 21 is a table diagram showing sample contents of the attribute usage table in a first state of the home facts database. The attribute usage table 2100 has a row for each different attribute value usage, such as rows 2111-2114. Each row is divided into the following columns: an AttributeUsageID column 2101 containing an attribute usage ID assigned to the usage to which the row corresponds; an AttributeUsageDescription column 2102 that contains a description of the usage; an AttributeDataTypeID column 2103 that contains a data type selected for the usage; and an AttributeUnitTypeID column 2104 that, for usages in which the value is expressed in a particular unit, contains an indication of that unit. For example, row 2111 indicates that the usage having AttributeUsageID 1 is a whole number based upon the integer data type, and does not have any units. This usage is employed in the following rows of the property attribute value table shown in FIG. 16: 1611-1614, 1618, 1619, 1622, and 1624.

Based upon the foregoing, it can be seen that the first state of the home facts database reflects the attribute values shown in FIG. 12 and originally obtained from a first source, as well as the values shown in FIG. 13 and provided by the owner of the home. It can be seen that the owner, having DataSourceTypeID 2, provided values for the following attributes: the number of bedrooms attribute having PropertyAttributeTypeID 111 (row 1612); the number of bathrooms attribute having PropertyAttributeTypeID 112 (row 1613); the home size attribute having PropertyAttributeTypeID 114 (row 1617); the total number of rooms having PropertyAttributeTypeID 115 (row 1619); the cooling attribute having PropertyAttributeTypeID 116 (row 1621); and the roof type property having PropertyAttributeTypeID 118 (row 1623). The owner failed to provide a value for, among other attributes, the lot size attribute having PropertyAttributeTypeID 113. The original data source, on the other hand, failed to provide a value for the roof type attribute, having PropertyAttributeTypeID 118.

FIGS. 22 and 23 relate to a second state of the home facts database, reflecting the addition of a new attribute to the home facts database. FIG. 22 is a table diagram showing sample contents of the property attribute type table in the second state of the home facts database. It can be seen in table 2200 that row 2219 has been added to the property attribute type table shown in FIG. 18. Row 2219 defines a new attribute, school district, and assigns to it a PropertyAttributeTypeID 140. The addition of this row to the property attribute type table to store values for this new attribute, and attribute value sources, such as the owner, to provide values for this new attribute.

FIG. 23 is a table diagram showing several contents of the property attribute value table in the second state of the home facts database. It can be seen from this table 2300 that a new row 2325 has been added to table 1600 shown in FIG. 16. It shows that, subsequent to adding the new row 2219 to the property attribute type table, the owner of the home having property ID 11111111 provided the attribute value 203 for the new school district attribute.

FIGS. 24-25 show a third state of the home facts database reflecting the addition of a new data source to the home facts database. FIG. 24 is a table diagram showing sample contents of the data source type table in the third state of the home facts database. The table 2400 shows the addition of a new row 2413 corresponding to a new source of attribute values, a verified agent, i.e., a real estate agent verified as acting on behalf of the current owner of the home. Row 2413 assigns this data source the DataSourceTypeID 3.

FIG. 25 is a table diagram showing sample contents of the property attribute value table 2500 in the third state of the home facts database. The table 2500 shows the addition of new row 2526 which indicates that the value 5350 for the lot size attribute having property attribute type 113 has been obtained from the verified agent data source. This is consistent with the owner's agent performing or commissioning a survey of the lot size and determining that it is slightly larger than the value attributed by the local government data source.

In some embodiments, the AttributeUsageID and/or UseRank columns shown in the property attribute value table are relocated to the property attribute type table, such that they are stored only once for each attribute, as opposed to once for each combination of attribute, home, data source, and sequence number.

In some embodiments, the facility employs various approaches to selecting from among and/or combining attribute values for the same home obtained from different sources. In some embodiments, the facility employs an ordering of data sources called an attribute value source authority precedence that specifies, where more than one data source provides a value for the same home and attribute, which is to be considered the most authoritative. The facility may maintain and apply a single attribute value source authority precedence across all attributes, or multiple attribute value source authority precedences that are each targeted to a single attribute or a larger proper subset of the full list of attributes.

In some embodiments, the facility enables a user to identify himself or herself as the owner of a home without immediately editing the home facts associated with that home.

In some embodiments, the facility omits IP address blacklisting from the process it performs to determine whether to identify a user as the owner of a home.

It will be appreciated by those skilled in the art that the above-described facility may be straightforwardly adapted or extended in various ways. For example, the facility may employ a variety of database schemas and may store values of a variety of types for attributes of all sorts of homes or other properties. While the foregoing description makes reference to particular embodiments, the scope of the invention is defined solely by the claims that follow and the elements recited therein. 

1. A method in a computing system for constructing a repository containing attribute information for a plurality of homes, comprising, for each of the plurality of homes: procuring values for attributes among a plurality of attributes that were attributed to the home by a government agency; storing the procured attribute values for the home with an indication that they were attributed to the home by a government agency; providing a mechanism for a user to identify himself as an owner of the home; where the mechanism is used to identify a user as an owner of the home, obtaining from the user values for attributes among the plurality of attributes; storing the obtained attribute values for the home with an indication that they were attributed to the home by an owner of the home, such that all of the procured attribute values and all of the obtained attribute values are simultaneously stored; and making available for display by any user both the procured and obtained attribute values for the home.
 2. The method of claim 1 wherein providing the mechanism comprises: posing a question whose answer would be known to the owner of the home; receiving an answer to the posed question from a user; only if the received answer is correct, identifying the user as the owner of the home; if the received answer is incorrect: obtaining credit card information from the user; determining whether the obtained credit card information is associated with a valid credit card; and only if the obtained credit card information is associated with a valid credit card, identifying the user as the owner of the home.
 3. The method of claim 1 wherein providing the mechanism comprises: obtaining credit card information from the user; determining whether the obtained credit card information is associated with a valid credit card; and only if the obtained credit card information is associated with a valid credit card, identifying the user as the owner of the home.
 4. A computer-readable medium whose contents cause a computing system to perform a method for constructing a repository containing attribute information for a plurality of properties, the method comprising, for each of the plurality of properties: procuring values for attributes among a plurality of attributes that were attributed to the property by a government agency; storing the procured attribute values for the property with an indication that they were attributed to the property by a government agency; providing a mechanism for a user to identify himself as an owner of the property; where the mechanism is used to identify a user as an owner of the property, obtaining from the user values for attributes among the plurality of attributes; storing the obtained attribute values for the property with an indication that they were attributed to the property by an owner of the property, such that all of the procured attribute values and all of the obtained attribute values are simultaneously stored; and making available for display by any user both the procured and obtained attribute values for the property.
 5. A computer-readable medium whose contents cause a computing system to perform a method for publishing information about a distinguished home, the method comprising: identifying a distinguished user as the owner of the distinguished home if the distinguished user can either (1) answer a question whose answer is likely to be known by the present owner of the distinguished home or (2) provide credit card information associated with a valid credit card; if the distinguished user is identified as the owner of the distinguished home: receiving information about the distinguished home from the distinguished user; and including the received information in a web page relating to the distinguished home that is available for retrieval by any user without restriction.
 6. The computer-readable medium of claim 5 wherein the received information specifies values for one or more home attributes.
 7. The computer-readable medium of claim 5, further comprising: automatically determining a valuation of the distinguished home based at least in part on at least a portion of the received information; and including the determined valuation in a web page relating to the distinguished home that is available for retrieval by any user without restriction.
 8. The computer-readable medium of claim 5, further comprising identifying a distinguished user as the owner of the distinguished home if the distinguished user provides documentary evidence that the distinguished user is the owner of the distinguished home.
 9. The computer-readable medium of claim 5, further comprising identifying a distinguished user as the owner of the distinguished home if the distinguished user provides a copy of a deed showing the distinguished user to be the owner of the distinguished home.
 10. The computer-readable medium of claim 5, further comprising identifying a distinguished user as the owner of the distinguished home if the distinguished user provides a copy of a title showing the distinguished user to be the owner of the distinguished home.
 11. The computer-readable medium of claim 5, further comprising identifying a distinguished user as the owner of the distinguished home if the distinguished user provides a copy of a mortgage statement showing the distinguished user to be the owner of the distinguished home.
 12. The computer-readable medium of claim 5, further comprising identifying a distinguished user as the owner of the distinguished home if the distinguished user provides a copy of a property tax assessment showing the distinguished user to be the owner of the distinguished home.
 13. The computer-readable medium of claim 5, further comprising identifying a distinguished user as the owner of the distinguished home if the distinguished user provides a copy of a property tax bill showing the distinguished user to be the owner of the distinguished home.
 14. The computer-readable medium of claim 5, further comprising: determining that the distinguished user and a second user are both simultaneously identified as the owner of the distinguished home; and in response to the determining, initiating a manual process to identify a single owner of the distinguished home.
 15. One or more computer memories collectively containing a data structure containing home attribute values for a plurality of homes and a plurality of home attributes, comprising, for each of the plurality of homes, for each of a plurality of attribute value sources, the capacity to store values for any of the plurality of home attributes obtained from the attribute value source.
 16. The computer memories of claim 15 wherein the data structure comprises an attribute value table, each row of which contains indications of: a home; a home attribute; an attribute value source; and a value for the indicated home attribute attributed to the indicated home by the indicated attribute value source, such that the table may simultaneously contain multiple rows for the same home and home attribute and different attribute value sources, and such that any rows the table indicating a distinguished home may be used to display information about the distinguished home.
 17. The computer memories of claim 16 wherein the data structure further comprises an attribute table, each row of which contains information identifying a different home attribute, and wherein each row of the attribute value table indicates an attribute by containing a reference to a row of the attribute table whose contents identify the attribute, such that the addition of a row to the attribute table whose contents identify a new home attribute enables rows to be added to the attribute value table that indicate values for the new home attribute.
 18. The computer memories of claim 16 wherein the data structure contains both (1) a first row indicating a distinguished home, a distinguished home attribute, a first attribute value source, and a first value for the distinguished home attribute attributed to the distinguished home by the first attribute value source, and (2) a second row indicating the distinguished home, the distinguished home attribute, a second attribute value source that differs from the first attribute value source, and a second value for the distinguished home attribute attributed to the distinguished home by the second attribute value source that differs from the first value for the distinguished home attribute.
 19. The computer memories of claim 18 wherein the first attribute value source is a government agency and the second attribute value source is a user identified as an owner of the distinguished home.
 20. The computer memories of claim 15 wherein the data structure further comprises information indicating at least one attribute value source authority precedence, each attribute value source authority precedence specifying, for a designated attribute, a relative level of authority to be attributed to each of a plurality of attribute value sources providing values for the designated attribute.
 21. One or more generated data signals collectively conveying a home attribute display data structure, the data structure having contents for causing a display device to display visual information that (a) identifies a home, (b) conveys a first value for a home attribute obtained from a first source, and (c) conveys a second value for the home attribute obtained from a second source distinct from the first source.
 22. The generated data signals of claim 19 wherein the data structure further has contents for causing a display device to display visual information that (d) identifies the first source, and (e) identifies the second source.
 23. A computing system for aggregating home attribute values, comprising: an import module that imports home attribute values exported by one or more external electronic data sources; a web serving module that serves web pages usable by authorized users to input home attribute values; and a home facts repository that stores both home attribute values imported by the import module and home attribute values inputted via web pages served by the web serving module.
 24. The computing system of claim 23 wherein the web serving module further serves web pages to users without restriction that contain both home attribute values imported by the import module and home attribute values inputted via web pages served by the web serving module.
 25. A method in a computing system for managing home attribute values, comprising: obtaining a value for an attribute of a home from a data source; and adding a row to a first table indicating the received value and identifying the home, the attribute, and the data source, the first table containing a plurality of rows each corresponding to a value of one of a plurality of attributes of one of a plurality of homes obtained from one of a plurality of data sources.
 26. The method of claim 25 wherein no attribute value has previously been obtained from the data source from which the attribute value is obtained, and wherein the row added to the first table identifies the data source from which the value is obtained by containing an identifier for the data source from which the value is obtained, the method further comprising: selecting the value of the identifier for the data source from which the value is obtained; and adding a row to a second table containing the selected value of the identifier and additional identifying information for the data source from which the value is obtained.
 27. The method of claim 25 wherein no value has previously been obtained for the attribute for which the value is obtained, and wherein the row added to the first table identifies the attribute for which the value is obtained by containing an identifier for the attribute for which the value is obtained, the method further comprising: selecting the value of the identifier for the attribute for which the value is obtained; and adding a row to a second table containing the selected value of the identifier and additional identifying information for the attribute for which the value is obtained.
 28. The method of claim 25 wherein no attribute value has previously been obtained for the home for which the attribute value is obtained, and wherein the row added to the first table identifies the data source from which the value is obtained by containing an identifier for the home for which the value is obtained, the method further comprising: selecting the value of the identifier for the home for which the value is obtained; and adding a row to a second table containing the selected value of the identifier and additional identifying information for the home for which the value is obtained.
 29. The method of claim 25 wherein the obtained value is an enumerated value that has not previously been obtained for the attribute for which the value is obtained, and wherein the row added to the first table indicates the obtained value by containing an identifier for the attribute for the obtained value, the method further comprising: selecting the value of the identifier for the obtained value; and adding a row to a second table containing the selected value of the identifier and additional identifying information for the obtained value.
 30. The method of claim 25 wherein the obtained value differs from a value indicated by a row of the first table other than the added row for the same attribute and for the same home.
 31. The method of claim 30, further comprising presenting to a user at least two of the multiple values for the attribute and home contained by the first table.
 32. The method of claim 30, further comprising applying to the multiple values for the attribute and home contained by the first table a value derivation rule to produce a derived value to use for the attribute and home.
 33. The method of claim 32, further comprising using the derived value by presenting it to a user.
 34. The method of claim 32, further comprising using the derived value by generating a valuation of the home that is based upon the derived value.
 35. The method of claim 32 wherein the applied value derivation rule selects one of the multiple values for the attribute and home contained by the first table as the derived value.
 36. The method of claim 35 wherein the applied value derivation rule applies an attribute value source authority precedents specify a relative level of authority to be attributed to each of a plurality of attribute value sources.
 37. The method of claim 32 wherein the applied value derivation rule combines the multiple values for the attribute and home contained by the first table to produce the derived value. 